// 视图区域class类名
export const VIEW_CLASS_NAME = "hi-voucher-view-area";

// 单据class类名
export const CONTENT_CLASS_NAME = 'hi-voucher-content';

// 编辑模式class类名
export const EDIT_CLASS_NAME = 'hi-voucher-edit';

export const COL_WIDTH = 120; // 列宽
export const ROW_HEIGHT = 32; // 行高

export const voucherTemplateData = (): VoucherTemplate => ({
  // bg: "http://bills.bauble.vip/billBg/demo.png", // 背景图片
  // bgUrl: "http://bills.bauble.vip/billBg/demo.png", // 背景图片url
  bg: "",
  bgUrl: "", // 背景图片url
  type: 0, // 单据类型
  name: "", // 单据名称
  width: 820, // 单据宽度
  height: 400, // 单据高度
  seal: false, // 是否可盖章
  topLine: false, // 是否有封顶线
  correctLine: false, // 是否有更正线
  redPen: false, // 是否红字展示负数
  sign: false, // 是否可签字
  // 单据内容
  nodes: {
    texts: [textTemplateData()], // 文字
    inputs: [inputTemplateData()], // 输入框
    tables: [tableTemplateData()], // 表格
  },
});

export const inputTemplateData = (x = 50, y = 50): VoucherInputTemplate => ({
  type: "text", // 输入框类型
  mark: "", // 标记
  name: "输入框节点", // 输入框名称
  weight: 1, // 输入框权重

  fontSize: 14, // 字体大小
  bold: false, // 是否加粗
  width: COL_WIDTH, // 输入框宽度
  height: ROW_HEIGHT, // 输入框高度
  align: "left", // 输入框对齐方式

  x, // 输入框x坐标
  y, // 输入框y坐标

  maxlength: 0, // 输入框最大长度
  letterSpacing: 0, // 文字间距
  placeholder: "", // 占位符

  value: "", // 输入框值
});

export const tableTemplateData = (x = 50, y = 50): VoucherTableTemplate => ({
  name: "表格节点", // 表格名称
  align: "left", // 表格对齐方式
  border: true, // 是否有边框
  borderColor: "#000000",
  borderWidth: 1,
  x, // 表格x坐标
  y, // 表格y坐标
  // 表格内容
  content: {
    cols: Array.from({ length: 3 }).map(() => ({ width: COL_WIDTH, align: "left" })),
    rows: Array.from({ length: 3 }).map(() => ({
      lineHeight: ROW_HEIGHT,
      cells: Array.from({ length: 3 }).map(() => ({
        colspan: 1,
        rowspan: 1,
        node: null, // 单元格内容
      }))
    })),
  },
});

export const textTemplateData = (x = 50, y = 50): VoucherTextTemplate => ({
  name: "文本节点", // 文本名称
  fontFamily: "Microsoft YaHei", // 字体
  fontSize: 14, // 字体大小
  x, // 文本x坐标
  y, // 文本y坐标
  letterSpacing: 0, // 文字间距
  lineHeight: 1,
  content: "", // 文本内容
  bold: false, // 是否加粗
  color: "#000000", // 文本颜色
});
